package com.avengers.common.bean.api.auction;

import com.avengers.core.bean.enums.Currency;
import com.google.gson.annotations.SerializedName;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author yu.wang
 * @since 2019-12-17 10:35
 **/
public class ApiAuctionInfo implements Serializable {
    private static final long serialVersionUID = 1L;

    @SerializedName("bidding_id")
    private Integer auctionId;
    private String domain;
    /**
     * AuctionChannelType.name()
     */
    private String type;
    private Currency currency;
    @SerializedName("max_bid")
    private BigDecimal maxPrice;
    @SerializedName("next_bid")
    private BigDecimal nextPrice;
    @SerializedName("my_bid")
    private BigDecimal myBidPrice;
    @SerializedName("proxy_price")
    private BigDecimal proxyPrice;
    @SerializedName("is_leader")
    private Boolean isLeader;
    @SerializedName("is_reserve_met")
    private Boolean isReserveMet;
    /**
     * AuctionDTOStatus.name()
     */
    @SerializedName("status")
    private Integer status;
    @SerializedName("start_time")
    private Long startTimeMillis;
    @SerializedName("end_time")
    private Long endTimeMillis;
    @SerializedName("last_pay_time")
    private Long lastPayTimeMillis;
    @SerializedName("deliver_time")
    private Long deliverTimeMillis;

    /**
     * 汇率当currency = USD 时填写
     */
    @SerializedName("usd_rate")
    private BigDecimal usdRate;
    @SerializedName("transfer_in_price")
    private BigDecimal transferInPrice;
    @SerializedName("coupon_price")
    private BigDecimal couponPrice;
    @SerializedName("real_pay_price")
    private BigDecimal realPayPrice;

    public Integer getAuctionId() {
        return auctionId;
    }

    public void setAuctionId(Integer auctionId) {
        this.auctionId = auctionId;
    }

    public String getDomain() {
        return domain;
    }

    public void setDomain(String domain) {
        this.domain = domain;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Currency getCurrency() {
        return currency;
    }

    public void setCurrency(Currency currency) {
        this.currency = currency;
    }

    public BigDecimal getMaxPrice() {
        return maxPrice;
    }

    public void setMaxPrice(BigDecimal maxPrice) {
        this.maxPrice = maxPrice;
    }

    public BigDecimal getNextPrice() {
        return nextPrice;
    }

    public void setNextPrice(BigDecimal nextPrice) {
        this.nextPrice = nextPrice;
    }

    public Boolean getIsLeader() {
        return isLeader;
    }

    public void setIsLeader(Boolean isLeader) {
        this.isLeader = isLeader;
    }

    public BigDecimal getProxyPrice() {
        return proxyPrice;
    }

    public void setProxyPrice(BigDecimal proxyPrice) {
        this.proxyPrice = proxyPrice;
    }

    public Boolean getIsReserveMet() {
        return isReserveMet;
    }

    public void setIsReserveMet(Boolean isReserveMet) {
        this.isReserveMet = isReserveMet;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public BigDecimal getMyBidPrice() {
        return myBidPrice;
    }

    public void setMyBidPrice(BigDecimal myBidPrice) {
        this.myBidPrice = myBidPrice;
    }

    public Long getStartTimeMillis() {
        return startTimeMillis;
    }

    public void setStartTimeMillis(Long startTimeMillis) {
        this.startTimeMillis = startTimeMillis;
    }

    public Long getEndTimeMillis() {
        return endTimeMillis;
    }

    public void setEndTimeMillis(Long endTimeMillis) {
        this.endTimeMillis = endTimeMillis;
    }

    public Long getLastPayTimeMillis() {
        return lastPayTimeMillis;
    }

    public void setLastPayTimeMillis(Long lastPayTimeMillis) {
        this.lastPayTimeMillis = lastPayTimeMillis;
    }

    public Long getDeliverTimeMillis() {
        return deliverTimeMillis;
    }

    public void setDeliverTimeMillis(Long deliverTimeMillis) {
        this.deliverTimeMillis = deliverTimeMillis;
    }

    public BigDecimal getUsdRate() {
        return usdRate;
    }

    public void setUsdRate(BigDecimal usdRate) {
        this.usdRate = usdRate;
    }

    public BigDecimal getTransferInPrice() {
        return transferInPrice;
    }

    public void setTransferInPrice(BigDecimal transferInPrice) {
        this.transferInPrice = transferInPrice;
    }

    public BigDecimal getCouponPrice() {
        return couponPrice;
    }

    public void setCouponPrice(BigDecimal couponPrice) {
        this.couponPrice = couponPrice;
    }

    public BigDecimal getRealPayPrice() {
        return realPayPrice;
    }

    public void setRealPayPrice(BigDecimal realPayPrice) {
        this.realPayPrice = realPayPrice;
    }
}